# DP: Fix the linker error when creating an xcc for ia64

---
 gcc/config/alpha/linux-unwind.h |    3 +++
 gcc/config/ia64/fde-glibc.c     |    3 +++
 gcc/config/ia64/unwind-ia64.c   |    3 ++-
 gcc/config/sh/linux-unwind.h    |    2 ++
 gcc/unwind-compat.c             |    2 ++
 gcc/unwind-generic.h            |    2 ++
 6 files changed, 14 insertions(+), 1 deletions(-)

--- a/src/gcc/config/alpha/linux-unwind.h
+++ b/src/gcc/config/alpha/linux-unwind.h
@@ -29,6 +29,7 @@ Boston, MA 02110-1301, USA.  */
 /* Do code reading to identify a signal frame, and set the frame
    state data appropriately.  See unwind-dw2.c for the structs.  */
 
+#ifndef inhibit_libc
 #include <signal.h>
 #include <sys/ucontext.h>
 
@@ -80,3 +81,5 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
   fs->retaddr_column = 64;
   return _URC_NO_REASON;
 }
+
+#endif
--- a/src/gcc/config/ia64/fde-glibc.c
+++ b/src/gcc/config/ia64/fde-glibc.c
@@ -31,6 +31,7 @@
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE 1
 #endif
+#ifndef inhibit_libc
 #include "config.h"
 #include <stddef.h>
 #include <stdlib.h>
@@ -162,3 +163,5 @@ _Unwind_FindTableEntry (void *pc, unsigned long *segment_base,
 
   return data.ret;
 }
+
+#endif
--- a/src/gcc/config/ia64/unwind-ia64.c
+++ b/src/gcc/config/ia64/unwind-ia64.c
@@ -27,6 +27,7 @@
    This exception does not however invalidate any other reasons why
    the executable file might be covered by the GNU General Public License.  */
 
+#ifndef inhibit_libc
 #include "tconfig.h"
 #include "tsystem.h"
 #include "coretypes.h"
@@ -2417,3 +2417,4 @@ alias (_Unwind_SetIP);
 #endif
 
 #endif
+#endif
--- a/src/gcc/config/sh/linux-unwind.h
+++ b/src/gcc/config/sh/linux-unwind.h
@@ -29,6 +29,7 @@ Boston, MA 02110-1301, USA.  */
 /* Do code reading to identify a signal frame, and set the frame
    state data appropriately.  See unwind-dw2.c for the structs.  */
 
+#ifndef inhibit_libc
 #include <signal.h>
 #include <sys/ucontext.h>
 #include "insn-constants.h"
@@ -251,3 +252,4 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
   return _URC_NO_REASON;
 }
 #endif /* defined (__SH5__) */
+#endif
--- a/src/gcc/unwind-compat.c
+++ b/src/gcc/unwind-compat.c
@@ -29,6 +29,7 @@
    02110-1301, USA.  */
 
 #if defined (USE_GAS_SYMVER) && defined (USE_LIBUNWIND_EXCEPTIONS)
+#ifndef inhibit_libc
 #include "tconfig.h"
 #include "tsystem.h"
 #include "unwind.h"
@@ -213,3 +214,4 @@ _Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val)
 }
 symver (_Unwind_SetIP, GCC_3.0);
 #endif
+#endif
--- a/src/gcc/unwind-generic.h
+++ b/src/gcc/unwind-generic.h
@@ -214,6 +214,7 @@ _Unwind_SjLj_Resume_or_Rethrow (struct _Unwind_Exception *);
    compatible with the standard ABI for IA-64, we inline these.  */
 
 #ifdef __ia64__
+#ifndef inhibit_libc
 #include <stdlib.h>
 
 static inline _Unwind_Ptr
@@ -232,6 +233,7 @@ _Unwind_GetTextRelBase (struct _Unwind_Context *_C __attribute__ ((__unused__)))
 
 /* @@@ Retrieve the Backing Store Pointer of the given context.  */
 extern _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *);
+#endif
 #else
 extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *);
 extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *);
